package com.heikesong.weishi;

import android.Manifest;
import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.view.View;

import com.heikesong.weishi.base.BaseActivity;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

public class MainActivity  extends BaseActivity{

//    //是否需要检测后台定位权限，设置为true时，如果用户没有给予后台定位权限会弹窗提示
//    private boolean needCheckBackLocation = false;
//    //如果设置了target > 28，需要增加这个权限，否则不会弹出"始终允许"这个选择框
//    private static String BACK_LOCATION_PERMISSION = "android.permission.ACCESS_BACKGROUND_LOCATION";

    @Override
    protected int getContentView() {
        return R.layout.activity_main;
    }

    @Override
    protected void initView() {
//        if(Build.VERSION.SDK_INT > 28
//                && getApplicationContext().getApplicationInfo().targetSdkVersion > 28) {
//            needPermissions = new String[] {
//                    Manifest.permission.ACCESS_COARSE_LOCATION,
//                    Manifest.permission.ACCESS_FINE_LOCATION,
//                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
//                    Manifest.permission.READ_EXTERNAL_STORAGE,
//                    Manifest.permission.READ_PHONE_STATE,
//                    BACK_LOCATION_PERMISSION
//            };
//            needCheckBackLocation = true;
//        }
    }


//    /*************************************** 权限检查******************************************************/
//
//    /**
//     * 需要进行检测的权限数组
//     */
//    protected String[] needPermissions = {
//            Manifest.permission.ACCESS_COARSE_LOCATION,
//            Manifest.permission.ACCESS_FINE_LOCATION,
//            Manifest.permission.WRITE_EXTERNAL_STORAGE,
//            Manifest.permission.READ_EXTERNAL_STORAGE,
//            Manifest.permission.READ_PHONE_STATE,
//            BACK_LOCATION_PERMISSION
//    };
//
//    private static final int PERMISSON_REQUESTCODE = 0;
//
//    /**
//     * 判断是否需要检测，防止不停的弹框
//     */
//    private boolean isNeedCheck = true;
//
//    @Override
//    protected void onResume() {
//        try{
//            super.onResume();
//            if (Build.VERSION.SDK_INT >= 23) {
//                if (isNeedCheck) {
//                    checkPermissions(needPermissions);
//                }
//            }
//        }catch(Throwable e){
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * @param
//     * @since 2.5.0
//     */
//    @TargetApi(23)
//    private void checkPermissions(String... permissions) {
//        try{
//            if (Build.VERSION.SDK_INT >= 23 && getApplicationInfo().targetSdkVersion >= 23) {
//                List<String> needRequestPermissonList = findDeniedPermissions(permissions);
//                if (null != needRequestPermissonList
//                        && needRequestPermissonList.size() > 0) {
//                    try {
//                        String[] array = needRequestPermissonList.toArray(new String[needRequestPermissonList.size()]);
//                        Method method = getClass().getMethod("requestPermissions", new Class[]{String[].class, int.class});
//                        method.invoke(this, array, 0);
//                    } catch (Throwable e) {
//
//                    }
//                }
//            }
//
//        }catch(Throwable e){
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * 获取权限集中需要申请权限的列表
//     *
//     * @param permissions
//     * @return
//     * @since 2.5.0
//     */
//    @TargetApi(23)
//    private List<String> findDeniedPermissions(String[] permissions) {
//        try{
//            List<String> needRequestPermissonList = new ArrayList<String>();
//            if (Build.VERSION.SDK_INT >= 23 && getApplicationInfo().targetSdkVersion >= 23) {
//                for (String perm : permissions) {
//                    if (checkMySelfPermission(perm) != PackageManager.PERMISSION_GRANTED
//                            || shouldShowMyRequestPermissionRationale(perm)) {
//                        if(!needCheckBackLocation
//                                && BACK_LOCATION_PERMISSION.equals(perm)) {
//                            continue;
//                        }
//                        needRequestPermissonList.add(perm);
//                    }
//                }
//            }
//            return needRequestPermissonList;
//        }catch(Throwable e){
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//    private int checkMySelfPermission(String perm) {
//        try {
//            Method method = getClass().getMethod("checkSelfPermission", new Class[]{String.class});
//            Integer permissionInt = (Integer) method.invoke(this, perm);
//            return permissionInt;
//        } catch (Throwable e) {
//        }
//        return -1;
//    }
//
//    private boolean shouldShowMyRequestPermissionRationale(String perm) {
//        try {
//            Method method = getClass().getMethod("shouldShowRequestPermissionRationale", new Class[]{String.class});
//            Boolean permissionInt = (Boolean) method.invoke(this, perm);
//            return permissionInt;
//        } catch (Throwable e) {
//        }
//        return false;
//    }
//
//    /**
//     * 检测是否说有的权限都已经授权
//     *
//     * @param grantResults
//     * @return
//     * @since 2.5.0
//     */
//    private boolean verifyPermissions(int[] grantResults) {
//        try{
//            for (int result : grantResults) {
//                if (result != PackageManager.PERMISSION_GRANTED) {
//                    return false;
//                }
//            }
//        }catch(Throwable e){
//            e.printStackTrace();
//        }
//        return true;
//    }
//
//    @TargetApi(23)
//    public void onRequestPermissionsResult(int requestCode,
//                                           String[] permissions, int[] paramArrayOfInt) {
//        try{
//            if (Build.VERSION.SDK_INT >= 23) {
//                if (requestCode == PERMISSON_REQUESTCODE) {
//                    if (!verifyPermissions(paramArrayOfInt)) {
//                        showMissingPermissionDialog();
//                        isNeedCheck = false;
//                    }
//                }
//            }
//        }catch(Throwable e){
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * 显示提示信息
//     *
//     * @since 2.5.0
//     */
//
//
//    /**
//     * 启动应用的设置
//     *
//     * @since 2.5.0
//     */
//    public void startAppSettings() {
//        try{
//            Intent intent = new Intent(
//                    Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//            intent.setData(Uri.parse("package:" + getPackageName()));
//            startActivity(intent);
//        } catch (Throwable e) {
//            e.printStackTrace();
//        }
//    }
//
//    public  void showMissingPermissionDialog() {
//        try{
//            AlertDialog.Builder builder = new AlertDialog.Builder(this);
//            builder.setTitle("提示");
//            builder.setMessage("当前应用缺少必要权限。\\n\\n请点击\\\"设置\\\"-\\\"权限\\\"-打开所需权限");
//
//            // 拒绝, 退出应用
//            builder.setNegativeButton("取消",
//                    new DialogInterface.OnClickListener() {
//                        @Override
//                        public void onClick(DialogInterface dialog, int which) {
//                            try{
//                                finish();
//                            } catch (Throwable e) {
//                                e.printStackTrace();
//                            }
//                        }
//                    });
//
//            builder.setPositiveButton("设置",
//                    new DialogInterface.OnClickListener() {
//                        @Override
//                        public void onClick(DialogInterface dialog, int which) {
//                            try {
//                                startAppSettings();
//                            } catch (Throwable e) {
//                                e.printStackTrace();
//                            }
//                        }
//                    });
//
//            builder.setCancelable(false);
//
//            builder.show();
//        }catch(Throwable e){
//            e.printStackTrace();
//        }
//    }
    @Override
    protected void initData() {

    }

    @Override
    protected void onViewClick(View v) {

    }



}